---- FUNCIONES TRATADAS EN EL ARTICULO ---- Este art¡culo va destinado a todos aquellos que no dispongan de informaci¢n de las funciones utilizadas en este art¡culo. La explicaci¢n de las funciones est  sacada del Pc-Interno: -------------------------- INTERRUPCION 21H ------------------------------ Funci¢n 4ch, Int 21h ( Terminar programa con c¢digo de fin ) -------------------- Mediante esta funci¢n se finaliza un programa. La memoria RAM, que ocupa el programa, es liberada despu‚s de esta funci¢n, de modo que se puede volver a asignar a otros programas Entrada: AH= 4ch AL= codigo de fin Salida No tiene Codigo de fin -> 0: Fin normal 1: Fin por aparecer un car cter Control-C o activaci¢n de la tecla Interr 2: Por error al acceder a un dispositivo 3: Por llamada a la funci¢n 31h o int 27h Antes de pasar el control al programa invocador, se cierran todos los Handles que fueron abiertos por este programa, y los archivos asociados con ellos. Esto sin embargo no se aplica a archivos que se abrieron mediante FCB. Funci¢n 2a, Int 21h ( Obtener fecha ) -------------------- Mediante este funci¢n se obtiene la fecha actual del sistema. Entrada: AH= 2ah Salida AL = Dia de la semana ( Domingo=0, Lunes=1 ... ) CX = a¤o DH = mes DL = dia Funci¢n 09h, Int 21h ( Salida de una cadena de caracteres ) -------------------- Mediante la llamada de esta funci¢n se env¡a una cadena de caracteres en el dispositivo est ndar de salida, por ejemplo el monitor. Entrada AH=09h DS:DX= Puntero FAR sobre la cadena de caracteres Salida No tiene La cadena de caracteres ha de estar guardada en la memoria como una secuencia de bytes, que contienen el c¢digo ASCII del car cter a enviar. El final de la cadena de caracteres se le se¤aliza al DOS con un car cter $ ( c¢digo ASCII 36 ) Funci¢n 4eh, Int 21h ( Busca primera entrada de directorio ) -------------------- Esta funci¢n busca un archivo determinado, adem s como se puede indicar en CX el atributo determinado, tambi‚n se puede buscar subdirectorios y etiquetas de volumen Entrada AH=4eh CX= Atributo del archivo DS:DX= Puntero FAR al buffer con el nombre de archivo Salida Si no problema, flag de acarreo a 0 Si el flag de acarreo a 1: Error, en este caso AX: C¢digo de error 2: directorio no encontrado 18: no se encontr¢ archivo con el atributo indicado Funci¢n 4fh, Int 21h ( Busca siguiente entrada de directorio ) -------------------- La diferencia con la anterior es la siguiente: A la entrada se carga en AH=4fh y en la salida si el flag de acarreo est  a 1 en AX se pasa el valor 18, que indica que no se encontraron m s archivos con el atributo indicado. En CX en estas dos £ltimas funciones se indica el atributo en cuesti¢n seg£n la siguiente tabla: N£mero de Bit Significado -------------- ------------- 0 Fichero de s¢lo lectura 1 Fichero oculto 2 Fichero de sistema 3 Etiqueta de volumen 4 Subdirectorio 5 Fichero sin archivar Los archivos normales se buscan con el atributo 0. Si se colocan diferentes bits en el campo de atributos, no solo se buscan los archivos especificados, sino tambi‚n todos los normales. Funci¢n 3dh, Int 21h ( Abre Archivo (Handle) ) -------------------- Mediante esta funci¢n se abre un fichero ya existente. Entrada AH=3dh AL= Modo de Acceso Bit 0-2: Permiso de lectura / escritura 000b = Archivo s¢lo puede ser leido 001b = S¢lo puede ser escrito 010b = Puede ser leido y escrito Bit 3: 0b Bit 4-6: File-Sharing-Mode 000b= solo el programa actual puede acceder al archivo ( Compatibility-Mode) 001b= solo el programa actual puede acceder al archivo 010b= otro programa puede leer el archivo, pero no escribirlo 011b= otro programa puede escribir el archivo, pero no leerlo 100b= otro programa puede leer y escribir el archivo Bit 7: Handle-Flag 0= tambi‚n el programa hijo del programa actual puede acceder al Handle del archivo 1= solo el programa actual puede acceder al handle del archivo. DS:DX= Puntero FAR al nombre de archivo Salida Flag de Acarreo=0 O.K Flag de Acarreo=1 Error, en este caso AX = c¢digo de error 1: falta software de compartici¢n de archivos 2: archivo no se encontr¢ 3: directorio no encontrado archivo no existe 4: no quedan Handles-libres 5: Acceso Denegado 12: Modo de acceso no permitido Funci¢n 3eh, Int 21h ( Cerrar Archivo (Handle) ) -------------------- Con esta funci¢n se cierra un archivo abierto anteriormente. Entrada AH=3eh BX= Handle a cerrar Salida Flag de Carry=0 O.K Flag de Carry=1: Error, en este caso AX=6; Handle no permitido, o archivo asociado no est  abierto Funci¢n 3fh, Int 21h ( Leer Archivo (Handle) ) -------------------- Mediante esta funci¢n se lee una cantidad determinada de bytes de un fichero abierto anteriormente, estos bytes pueden ser almacenados en un buffer. Entrada AH=3fh BX= Handle del archivo o del dispositivo CX=Numero de bytes a leer DS:DX=Puntero FAR al buffer Salida Si carry-flag=1, Error en este caso AX= codigo de error 5: Acceso Denegado 6: Handle no permitido o archivo no abierto Si carry-flag=0 O.K AX=N£mero de bytes leidos Funci¢n 42h, Int 21h ( Mover puntero de un archivo (Handle) ) -------------------- Mediante esta funci¢n se consigue un acceso aleatorio al archivo, ya que los diferentes campos de datos ya no se han de leer en orden secuencial. Entrada AH=42h AL= Codigo de offset 0= Se refiere al principio del archivo 1= Se refiere a la posici¢n del puntero de archivo 2= Se refiere al final del archivo BX= Handle CX= HI-WORD del offsets DX= LO-WORD del offsets Salida CF (carry flag) =0 O.K DX= HI-WORD del puntero de archivo AX= LO-WORD del puntero de archivo CF=1 , en AX= codigo error 1: codigo de offset no permitido 6: Handle no permitido o archivo no abierto Funci¢n 40h, Int 21h ( Escribir archivo (Handle) ) -------------------- Se escribe un n£mero determinado de bytes en un archivo abierto anteriormente desde un buffer. Entrada AH=40h BX= Handle del archivo o del dispositivo CX= Cantidad de bytes a escribir DS:DX= Puntero FAR al buffer Salida CF=0 O.K CF=1, Error en AX= codigo de error 5: Acceso denegado 6: Handle no permitido o archivo no abierto Se dar  cuenta que mostramos informaci¢n de todas las funciones a las que hemos tenido acceso, sin embargo si de verdad le gusta la programaci¢n, le aconsejo que se haga pronto con alg£n manual que haga referencia de las interrupciones del DOS, como las del Pc-Interno, o cualquier gu¡a que poda¡s encontrar por ah¡, porque sinceramente este tipo de ficheros son un poco aburridos de escribir. HANDLER